
![ARCALVUS](https://notabug.org/Imitatory/arcalvus/raw/dev/.assets/arcalvus_logo_title.png)

***A simple password manager that uses GPG for encryption.
As a database, it uses just files for convenient data transfer.***

---


---

1. [Install](#install)
   - [pacman](#pacman)
1. [Use via Python](#use-via-python)
1. [Options](#option-lists)
1. [Instructions for use](#instructions-for-use)
1. [Examples](#examples)
   - [Demo](#demo)

---

## Depends:

 - fzf
 - gnupg
 - python >= 3.10

---

## Install:

### ArchLinux:

```shell
git clone 'https://notabug.org/Imitatory/arcalvus'

makepkg -si
```

---

## Use via Python:

```bash
git clone 'https://notabug.org/Imitatory/arcalvus'

cd arcalvus/src

# in bash
python -m venv venv; source venv/bin/activate

# in fish
python -m venv venv; source venv/bin/activate.fish

pip install -r requirements.txt

python arcalvus.py
```

---

## Option lists:

| flags | extendeds | deskriptions |
|----------|----------|----------|
| -p | --get-password | get password |
| -l | --get-login | get login |
| -o | --get-otp | get OTP |
| -g `<key>` | --get `<key>` | get value `<key>`  |
| --create | `<StorageName>` | create new storage |
| --open | | open storage |
| --show | | show output ignore protected |
| --edit-config| | open config file, use `nano` |
| --set-gpg-key| `<FPR>` | Set gpg-key |

---

## Files path:

```shell
$HOME/.config/arcalvus/arcalvus.json  #config file
$HOME/Documents/.arcalvus             #default storage path
```

---

## Instructions for use:

Used to encrypt PGP keys from `gnupg`, Create and specify keys in the config `arcalvus.json` in the `gpg_key`.

You can create a key with the command:
```shell
gpg --full-generate-key     #Create GPG key
gpg -k                      #List Publick keys
```

WARNING, set in `gpg_key` `FPR` to avoid mistakes.

### Example FPR:

![](https://notabug.org/Imitatory/arcalvus/raw/dev/.assets/example_fpr.png)


### Example config:
```json
{
    "gpg_key": "<FPR>",
    "notify": true/false
}
```

### Create new storage:

```shell
arcalvus --create 'MyPassword'  #Create a storage named 'MyPassword'
```

---

## In storage editor:

In edit mode, use `help` for more info.

| arg | opt | val | descriptions |
|----------|----------|----------|----------|
| set | `<Key>` | `<Value>` | Set key-value |
| rename | `<OldKey>` | `<NewKey>` | Renaming key |
| del | `<Key>` | | Remove key-value |
| wq | | |  Save&Exit |

---

## Examples gif:

### Demo:
![](https://notabug.org/Imitatory/arcalvus/raw/dev/.assets/arcalvus_demo_v1.0.gif)
